package com.xuelang.pipeline.domain.resource.service;

import com.xuelang.pipeline.client.common.result.PageRecord;
import com.xuelang.pipeline.client.resource.dto.ClusterQuery;
import com.xuelang.pipeline.domain.resource.Cluster;

import java.util.List;

/**
 * 集群领域服务类
 *
 * @author xiwen.zxg
 * @since 2024/5/15
 */
public interface ClusterDomainService {
    /**
     * 获取集群列表，有过滤条件
     *
     * @param currentPage
     * @param pageSize
     * @param clusterQuery
     * @return
     */
    PageRecord<Cluster> pageList(long currentPage, long pageSize, ClusterQuery clusterQuery);
    /**
     * 获取集群列表，有过滤条件
     *
     * @param clusterQuery
     * @return
     */
    List<Cluster> list(ClusterQuery clusterQuery);

    /**
     * 新增集群
     *
     * @param cluster
     * @return
     */
    Boolean save(Cluster cluster);

    /**
     * 更新集群
     *
     * @param cluster
     * @return
     */
    Boolean update(Cluster cluster);
    /**
     * 删除集群
     *
     * @param clusterUuid
     * @return
     */
    Boolean delete(String clusterUuid);
    /**
     * 判断集群别名是否存在
     *
     * @param clusterUuid
     * @param clusterAlias
     * @return
     */
    Boolean existsAlias(String clusterUuid, String clusterAlias);

    /**
     * 判断集群名称是否存在
     *
     * @param clusterUuid
     * @param clusterName
     * @return
     */
    Boolean existsName(String clusterUuid, String clusterName);
    /**
     * 判断集群是否存在
     *
     * @param custerUuid
     * @return
     */
    Boolean existsCluster(String custerUuid);
    /**
     * 查询集群
     *
     * @param clusterUuid
     * @return
     */
    Cluster query(String clusterUuid);
}
